/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package gob.cgr.sgrh.ejb.entidad;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;

/**
 *
 * @author MICROSOF
 */
@Entity
@Table(name = "merito_demerito")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "MeritoDemerito.findAll", query = "SELECT m FROM MeritoDemerito m"),
    @NamedQuery(name = "MeritoDemerito.findByIdMerito", query = "SELECT m FROM MeritoDemerito m WHERE m.idMerito = :idMerito"),
    @NamedQuery(name = "MeritoDemerito.findByTipoDocumento", query = "SELECT m FROM MeritoDemerito m WHERE m.tipoDocumento = :tipoDocumento"),
    @NamedQuery(name = "MeritoDemerito.findByNumeroDoc", query = "SELECT m FROM MeritoDemerito m WHERE m.numeroDoc = :numeroDoc"),
    @NamedQuery(name = "MeritoDemerito.findByFechaDocumento", query = "SELECT m FROM MeritoDemerito m WHERE m.fechaDocumento = :fechaDocumento"),
    @NamedQuery(name = "MeritoDemerito.findByFechaEfectividad", query = "SELECT m FROM MeritoDemerito m WHERE m.fechaEfectividad = :fechaEfectividad"),
    @NamedQuery(name = "MeritoDemerito.findByDetalle", query = "SELECT m FROM MeritoDemerito m WHERE m.detalle = :detalle"),
    @NamedQuery(name = "MeritoDemerito.findByEntidad", query = "SELECT m FROM MeritoDemerito m WHERE m.entidad = :entidad"),
    @NamedQuery(name = "MeritoDemerito.findByTipoEntidad", query = "SELECT m FROM MeritoDemerito m WHERE m.tipoEntidad = :tipoEntidad"),
    @NamedQuery(name = "MeritoDemerito.findByTipoMerDem", query = "SELECT m FROM MeritoDemerito m WHERE m.tipoMerDem = :tipoMerDem")})
public class MeritoDemerito implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @NotNull
    @Column(name = "ID_MERITO")
    private Integer idMerito;
    @Size(max = 45)
    @Column(name = "TIPO_DOCUMENTO")
    private String tipoDocumento;
    @Size(max = 20)
    @Column(name = "NUMERO_DOC")
    private String numeroDoc;
    @Column(name = "FECHA_DOCUMENTO")
    @Temporal(TemporalType.DATE)
    private Date fechaDocumento;
    @Column(name = "FECHA_EFECTIVIDAD")
    @Temporal(TemporalType.DATE)
    private Date fechaEfectividad;
    @Size(max = 45)
    @Column(name = "DETALLE")
    private String detalle;
    @Size(max = 255)
    @Column(name = "ENTIDAD")
    private String entidad;
    @Size(max = 45)
    @Column(name = "TIPO_ENTIDAD")
    private String tipoEntidad;
    @Size(max = 10)
    @Column(name = "TIPO_MER_DEM")
    private String tipoMerDem;
    @JoinColumn(name = "ID_PERSONAL", referencedColumnName = "ID_PERSONAL")
    @ManyToOne(optional = false)
    private Personal idPersonal;

    public MeritoDemerito() {
    }

    public MeritoDemerito(Integer idMerito) {
        this.idMerito = idMerito;
    }

    public Integer getIdMerito() {
        return idMerito;
    }

    public void setIdMerito(Integer idMerito) {
        this.idMerito = idMerito;
    }

    public String getTipoDocumento() {
        return tipoDocumento;
    }

    public void setTipoDocumento(String tipoDocumento) {
        this.tipoDocumento = tipoDocumento;
    }

    public String getNumeroDoc() {
        return numeroDoc;
    }

    public void setNumeroDoc(String numeroDoc) {
        this.numeroDoc = numeroDoc;
    }

    public Date getFechaDocumento() {
        return fechaDocumento;
    }

    public void setFechaDocumento(Date fechaDocumento) {
        this.fechaDocumento = fechaDocumento;
    }

    public Date getFechaEfectividad() {
        return fechaEfectividad;
    }

    public void setFechaEfectividad(Date fechaEfectividad) {
        this.fechaEfectividad = fechaEfectividad;
    }

    public String getDetalle() {
        return detalle;
    }

    public void setDetalle(String detalle) {
        this.detalle = detalle;
    }

    public String getEntidad() {
        return entidad;
    }

    public void setEntidad(String entidad) {
        this.entidad = entidad;
    }

    public String getTipoEntidad() {
        return tipoEntidad;
    }

    public void setTipoEntidad(String tipoEntidad) {
        this.tipoEntidad = tipoEntidad;
    }

    public String getTipoMerDem() {
        return tipoMerDem;
    }

    public void setTipoMerDem(String tipoMerDem) {
        this.tipoMerDem = tipoMerDem;
    }

    public Personal getIdPersonal() {
        return idPersonal;
    }

    public void setIdPersonal(Personal idPersonal) {
        this.idPersonal = idPersonal;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idMerito != null ? idMerito.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof MeritoDemerito)) {
            return false;
        }
        MeritoDemerito other = (MeritoDemerito) object;
        if ((this.idMerito == null && other.idMerito != null) || (this.idMerito != null && !this.idMerito.equals(other.idMerito))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "gob.cgr.sgrh.ejb.entidad.MeritoDemerito[ idMerito=" + idMerito + " ]";
    }
    
}
